package com.aracky.system.service;

import com.aracky.common.vo.PageVO;
import com.aracky.system.model.entity.SysRole;
import com.aracky.system.model.request.SysRoleRequest;
import com.aracky.system.model.vo.SysRoleVO;
import com.aracky.system.model.vo.SysUserVO;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 角色信息表 服务类
 * </p>
 *
 * @author zzp
 * @since 2022-07-14 11:22:57
 */
public interface SysRoleService extends IService<SysRole> {
    /**
     * 新增用户
     * @param sysRole
     * @return
     */
    public int saveRole(SysRole sysRole);

    /**
     * 删除用户
     * @param roleId
     * @return
     */
    public int deleteRole(Long roleId);

    /**
     * 角色修改
     * @param sysRole
     * @return
     */
    public int updateRole(SysRole sysRole);

    /**
     * 查询角色详情
     * @param roleId
     * @return
     */
    public SysRole getRoleById(Long roleId);

    /**
     * 查询角色列表
     * @param sysRoleRequest
     * @return
     */
    public PageVO<SysRoleVO> getRolePage(SysRoleRequest sysRoleRequest);

    /**
     * 分配用户给角色
     * @param roleId
     * @param userIds
     */
    public void saveUserToRole(Long roleId,Long[] userIds);

    /**
     * 分配菜单给角色
     * @param roleId
     * @param menuIds
     */
    public void saveMenuToRole(Long roleId,Long[] menuIds);

    /**
     * 检查角色是否唯一
     * @param roleName
     * @return
     */
    public Long getCheckRoleName(String roleName);

    /**
     * 通过角色key获取员工id
     * @param roleKey
     * @return
     */
    Long getDefaultRole(String roleKey);

}
